星舟平台的使用(GIT、spring Boot 的使用以及swagger组件的使用)

一、介绍星舟平台

????1、星舟简介

????2、网关kong的介绍

????3、客户端

????????1)、服务注册:Eureka

????????2)、客户端负载均衡:Ribbon

????4、服务器端

????????1)、服务注册:Marathon+Marathon-LB、HAProxy+Confd+Etcd

????????2)、服务端负载均衡:HAProxy

????5、pinpoint调用链技术

????????traceid 透明数据传输

????6、服务调用可以使用ELK采集

????7、服务隔离与降级hystrix

????8、统一配置中心:Spring Cloud ConfigServer

????9、服务契约 Swagger,可以产生一个线上的文档

????10、星舟灰度发布

????????三种方式

????????????1、不定向发布:按比例发布

????????????2、定向挑选:和微服务路径相关

????????????3、定向挑选:业务无关,和header有关

????????????
?

????11、devops的实操过程

????????jenkins on mesos,相当于jenkins集群

????????每个jenkins都有其master和slave

????12、基于深度学习框架Tensorflow的微服务弹性扩缩

????????
?

????13、下一步演进 service mesh(服务网格)

?
?

二、开启微服务之旅-SpringBoot入门

????需要安装的软件

????????idea

????????jdk

????????git

????????postman

????1、spring boot 的版本,只能选择1.5.X版本

????2、使用idea做一个Hello World!

????????步骤:

????????????1)、创建一个spring boot

????????????????GRoup 为com.unicom.microserv.px

????????????????artifact:px190327_学号,我的是px190327_38023

????????????????选择web 和actuator

????????????????finish

????????????????删除一些目录,.mvn相关的三个文件或者目录等

????????????????http://localhost:8080/health

????????????????有正常返回即可:{"status":"UP"}

????????????2)、增加HelloWorld

????????????????增加一个包controller

????????????????????增加一个类HelloController

????????????????????增加类注解

????????????????????????@RestController

????????????????????????@RequestMapping(value="/px190327/38023")

????????????????????在类中增加一个类

????????????????????????并增加注解,代码如下:

???????????????????????? @RequestMapping(

????????????????????????????????????value = "hello",

????????????????????????????????????method = RequestMethod.GET

????????????????????????????)

????????????????????????????public String hello() {

????????????????????????????????return "Hello World!38023";

????????????????????????????}

????????????????3)、访问http://localhost:8080/px190327/38023/hello

????????????????????Hello World!

????3、Spring Boot的5种传参方式

????????注解 传参方式

????????@PathVariable 路径参数

????????@RequestParam Query参数;

????????表单@RequestBody Body参数

????????@RequestHeader Header参数

????????@CookieValue Cookie参数

????????
?

????????@PathVariable和@RequestParam的使用

????????????????????????并增加注解,代码如下:

???????????????????????? @RequestMapping(

????????????????????????????????????value = "hello/{name}",

????????????????????????????????????method = RequestMethod.GET

????????????????????????????)

????????????????????????????public String hello(@PathVariable String name,

???????????????????????????????????????????????? @RequestParam ("say") String say) {

????????????????????????????????return "Hello World!" + name +"speak"+say;

????????????????????????????}

????????????访问http://localhost:8080/px190327/38023/hello/38023?say="Here Are You!"

?
?

????2019年3月27日下午

????????
?

三、Git学习(版本控制)

????????GitLab地址:http://10.172.49.22:8825/

????????????账户:注册

????????星舟管理平台:地址:http://10.172.49.22:8086/microservadmin/login

????????????账户: 同GitLab

????????天宫DCOS:地址:http://10.172.49.2/#/dashboard

????????账户:skyark_XXX/skyark_XXX(注意不要使用其他账号)

????????
?

????????网络环境需要打开

????????http://10.125.128.49:9999/service/jenkins/job/cbproject1_feature_1036_release20190112/1/console

????????
?

????????
?

????????Git的工作区、缓存区、版本库 Working Directory /staging Directory/history Directory

????????
?

????????git命令:

????????????git add

????????????git commit; #提交版本

????????????git status

????????????git rm

????????????git mv

????????????gitignore 不做版本控制的文件列表

????????????git init 创建仓库

????????????git remote add origin {URL} 添加远程库

????????????git push [–u origin master] 推送到远程库

????????????git pull 拉取到本地

????????????git checkout {branch-name} 切换分支

????????????git status 查看文件状态

????????本地分支和github/gitlabrary 服务器上分支

????????idea的工程的本地版本管理

????????????vcs->->import into version control->create Git repostory

????????????这是文件变红,表示未更新,右下角 有关各 git master

????????????工程目录 右键 -》git ->add

????????????工程目录 右键 -》git ->commit directory ,需要填写 commit text 和 username 以及邮件 ,username 以及邮件见邮件,正常提交后文件颜色恢复正常

????????星舟配置http://10.172.49.22:8086/microservadmin/login

????????????登录后

????????????????研发流程管理->CICD->Git项目管理,新建项目

????????????????组名px190327

????????????????Git工程名 和本地一样,我的是px190327_38023

????????????????
?

????????????????拷贝出来git地址http://10.172.49.22:8825/px190327/px190327_38023.git

????????????????idea中

????????????????git-repository-remote弹出一个对话框,点击+ ,origin不动,在输入框后粘贴拷贝出来的git地址,提交后,弹出需要输入用户名+密码 ok

????????????????git-repository-push,push成功

????????????????在天舟中可以看到对应的项目中的分支为master ,证明上传成功。

????????????
?

????????????
?

????????????注意:

????????????如果刚开始在填写用户名和右键是输入和远程的用户名不一致时,会出现问题,需要删除重新增加,在控制面板->用户账户->凭据管理器->管理windows凭据 删除

????????切换分支

????????????星舟管理平台,项目管理,找到自己的工程,点击右侧的添加分支????起名为feature_0327,在idea中git-repository-pull,选中服务器上的feature_0327分支,在idea的右下角git master 点击后选择新的分支。即可使用分支开发

????????????checkout,即切换到新的分支

????????????完成修改后,push后,在星舟平台会自动构建,完成后,在天宫平台登录的组件仓库中可以看到该组件,点击操作下的安装组件包,点击 预览及运行,点击运行,等几分钟后再服务中可以看到

????????????在服务->px190327中可以看到对应的服务运行起来了,点击服务,再点击具体的服务名,并在详情中可以看到服务地址和端口http://10.125.128.22:15295

????????????浏览器中打开

????????????http://10.125.128.22:15295/px190327/38023/hello/38023?say="I LOVE YOU!" 本地没问题,这里还有问题

????????????疑问:怎么看marathon转后的地址和前面的地址

????????????
?

????????服务实践:

????????????URL ????动作 ????????????功能

????????????/users GET 获取所有用户列表

????????????/users POST 增加一个用户

????????????/users/{id} GET 根据ID获取用户

????????????/users/{id} PUT 修改ID为1的用户

????????????/users/{id} DELETE 删除ID删除用户

????????????/users/name/{name} GET 根据name查找用户

????????????/users/{id}/age GET 获取用户的年龄

????????????怎么发布?

增加一个User类(包含age和name两个属性)

????????????????public class User {

????????????????????Integer age;

????????????????????String name;

?

????????????????????public Integer getAge() {

????????????????????????return age;

????????????????????}

?

????????????????????public void setAge(Integer age) {

????????????????????????this.age = age;

????????????????????}

?

????????????????????public String getName() {

????????????????????????return name;

????????????????????}

?

????????????????????public void setName(String name) {

????????????????????????this.name = name;

????????????????????}

????????????????}

????????????新增加一个类UserController,增加方法 如下

????????????????????@RequestMapping(

????????????????????????????value = "users",

????????????????????????????method = RequestMethod.GET

????????????????????)

????????????????????public String getAllUser() {

?
?

????????????????????????return "返回所有user信息!";

????????????????????} //这里可以修改为返回user列表

????????????????????@RequestMapping(

????????????????????????????value = "user",

????????????????????????????method = RequestMethod.POST

????????????????????)

????????????????????public String createUser() {

????????????????????????return "增加一个用户!";

????????????????????}

????????????http://localhost:8080/px190327/38023/users,为空即可

????????????
?

?
?

????????????
?

????????接口文档的编写:http://10.172.49.22:8825/peixun/peixun_demo1/wikis/home这里有说明,见Swagger的学习.docx

????????????1、增加Swagger依赖到Maven

????????????2. 入口类注解@EnableSwagger2

????????????3. Swagger配置类SwaggerConfig.java

????????????4. 注解到接口方法@ApiOperation

????????????5. localhost:8080/swagger-ui.html

????????????6. @ApiIgnore 入口类

????????????????
?

????????????????@ApiOperation 方法说明 value 为标题 ,notes为说明,不限制长度

????????????????@ApiModel????????类说明

????????????????@ApiModelProperty????类的属性说明

?
?

????????????操作过程

????????????????1、增加Swagger依赖到Maven

????????????????????<dependency>

???????????????????? <groupId>io.springfox</groupId>

???????????????????? <artifactId>springfox-swagger2</artifactId>

???????????????????? <version>2.8.0</version>

????????????????????</dependency>

????????????????????<dependency>

???????????????????? <groupId>io.springfox</groupId>

???????????????????? <artifactId>springfox-swagger-ui</artifactId>

???????????????????? <version>2.8.0</version>

????????????????????</dependency>

????????????????2、在入口增加注解????????????????????@EnableSwagger2,代码变为

????????????????????@SpringBootApplication

????????????????????@EnableSwagger2

????????????????????public class Px19032738023Application {

?
?

????????????????????????public static void main(String[] args) {

????????????????????????????SpringApplication.run(Px19032738023Application.class, args);

????????????????????????}

?
?

????????????????????}

????????????????3、新增加config包增加配置类SwaggerConfig.java

????????????????????????@Configuration

????????????????????????public class SwaggerConfig {

????????????????????????@Bean

???????????????????????? public Docket api() {

???????????????????????? return new Docket(DocumentationType.SWAGGER_2)

???????????????????????? .produces(Sets.newHashSet("application/json"))

???????????????????????? .consumes(Sets.newHashSet("application/json"))

???????????????????????? .apiInfo(apiInfo())

???????????????????????? .select()

???????????????????????? .apis(RequestHandlerSelectors

???????????????????????? .basePackage("com.unicom"))

???????????????????????? .paths(PathSelectors.any())

???????????????????????? .build();

???????????????????????? }

???????????????????????? private ApiInfo apiInfo()

???????????????????????? {

???????????????????????? return new ApiInfoBuilder()

???????????????????????? .title("peixun_liuyf")

???????????????????????? .version("1.0.0")

???????????????????????? .build();

???????????????????????? }

????????????????????????}????

????????????????4、增加说明

????????????????????getAllUser方法上增加说明

????????????????????@ApiOperation(

????????????????????????????????value="使用get获取user列表",

????????????????????????????????notes="通过get方法获取所有用户的列表,这里是示例,仅适用STring,正式环境需要有列表来返回!"

????????????????????????)

???????????????????? User属性增加注解和说明

????????????????????@ApiModelProperty(value="年龄",notes="user的年龄",example = "23") //这个是引入swagger类以后增加

????????????????????Integer age;

????????????????????@ApiModelProperty(value="姓名",notes="user的姓名",example = "张三") //这个是引入swagger类以后增加

????????????????????String name;

?

????????????????????
?

????????????????5、增加类getUserById定义

???????????????? @RequestMapping(

????????????????????????????value = "getUserById",

????????????????????????????method = RequestMethod.GET

????????????????????)

????????????????????@ApiOperation(

????????????????????????????value="根据id使用get获取user列表",

????????????????????????????notes="根据Id 通过get方法获取所有用户的列表!"

????????????????????)

????????????????????public User getUserById(@RequestParam ("userId") Integer userId) {

????????????????????????User user=new User();

????????????????????????user.setAge(1);

????????????????????????user.setName("luhq7");

????????????????????????return user;

????????????????????}

????????????????????
?

????????????????????访问测试:http://localhost:8080/px190327/38023/getUserById?userId=9,

????????????????6、测试Swagger效果

????????????????????????访问:http://localhost:8080/swagger-ui.html

????????????????????????属性相关的说明可以在对应的接口中的model中看到

????????????????????????在接口的说明中可以看到@ApiOperation的说明

原文地址:https://www.cnblogs.com/programer-xinmu78/p/10609866.html

时间: 2024-11-08 23:05:40

星舟平台的使用(GIT、spring Boot 的使用以及swagger组件的使用)的相关文章

剑指架构师系列-持续集成之Maven+Nexus+Jenkins+git+Spring boot

1.Nexus与Maven 先说一下这个Maven是什么呢?大家都知道,Java社区发展的非常强大,封装各种功能的Jar包满天飞,那么如何才能方便的引入我们项目,为我所用呢?答案就是Maven,只需要粘贴个Jar包的地址,Maven就会自动到网上查找引入到你的项目中.不过首先你的下载个Maven,然后指定一下 当下来的包包(jar)放到哪里. 我的版本是apache-maven-3.2.1,找到conf里面的配置文件 settings.xml,瞅瞅有没有 <localRepository>E:

spring boot之使用springfox swagger展示restful的api doc

新增文件: import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.bind.RelaxedPropertyResolver; import org.springframework.context.EnvironmentAware; import org.springframework.context.annotation.Bean; import org.springfra

spring boot 1.5.4 从入门到实践

Spring Boot四个重要核心: 自动配置:针对很多Sping应用程序常见的应用功能,Spring Boot能自动提供相关配置: 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库: 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建(实际开发中,可用性小): Actuator:让你能够深入运行中的SpringBoot应用程序的开发,一探究竟. spring-boot相关项目源码, 码云地址:https://git.o

spring boot 1.5.4 集成Swagger2构建Restful API(十八)

上一篇博客地址:springboot 1.5.4 整合rabbitMQ(十七) 1      Spring Boot集成Swagger2构建RESTful API文档 1.1  Swagger2简介 Swagger2官网:http://swagger.io/ 由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会

spring-boot-plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手

spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架 Spring-Boot-Plus是易于使用,快速,高效,功能丰富,开源的spring boot 脚手架. 前后端分离,专注于后端服务 目标 每个人都可以独立.快速.高效地开发项目! 版本库 GITHUB | GITEE 官网 springboot.plus 主要特性 集成spring boot 常用开发组件集.公共配置.AOP日志等 集成mybatis plus快速dao操作 快速生成后台代码: en

spring boot集成swagger2

做java Web的后端开发已经两年多了,一般都是开发完了接口,都把接口更新到wiki文档上,然后通知前端去文档上去查阅接口的详细描述, 当时经常接口会有变动,加参数或返回值夹字段,所以维护语线上一致的文档是一件非常麻烦的事情,前一段时间同事聊天说他们公司用的swagger2,这个不需要写文档,它是自动生成文档,只要会使用它提供的几个的注解就行,于是上网找了下资料,发现它于spring boot集成也非常方便.不废话直接看了代码. 首先,在maven项目的pom.xml加上他需要的依赖. <de

阿里P9告诉你 Spring Boot 2.0正式发布,升还是不升呢?

Spring帝国Spring几乎是每一位Java开发人员都耳熟能详的开发框架,不论您是一名初出茅庐的程序员还是经验丰富的老司机,都会对其有一定的了解或使用经验.在现代企业级应用架构中,Spring技术栈几乎成为了Java语言的代名词,那么Spring为什么能够在众多开源框架中脱颖而出,成为业内一致认可的技术解决方案呢?我们不妨从最初的Spring Framework开始,看看它为什么能够横扫千军,一统江湖! 挑战权威,一战成名 2004年3月,Spring的第一个版本以及其创始人Rod John

【Spring Boot 官方文档】26、Log日志

简介: Spring Boot所有内部日志使用Apache的Commons Logging组件,同时也开放了底层的日志实现. Spring Boot为3种日志组件Java Util Logging,Log4J2,Logback提供了默认配置,而且为每一种预设了控制台输出,并提供文件输出可选. 如果使用Spring Boot的starters组件,默认使用Logback组件. Spring Boot提供了适当的Logback路由,以保证依赖库使用Java Util Logging, Commons

Spring Boot 2.0深度实践之核心技术篇

第1章 系列总览总览 Spring Boot 2.0 深度实践系列课程的整体议程,包括 Spring Boot 三大核心特性(组件自动装配.嵌入式Web容?.生产准备特性).Web 应用(传统 Servlet.Spring Web MVC.Spring WebFlux).数据相关(JDBC.JPA.事务).功能扩展(SpringApplication.Spring Boot 配置.Spring Boot Starter)以及... 第2章 走向自动装配完整地讲述了 Spring Boot 是如何