一、介绍星舟平台

    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的说明

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

  1. Spring Boot项目简单上手+swagger配置+项目发布(可能是史上最详细的)

    Spring Boot项目简单上手+swagger配置 1.项目实践 项目结构图 项目整体分为四部分:1.source code 2.sql-mapper 3.application.properti ...

  2. Spring boot 多模块项目 + Swagger 让你的API可视化

    Spring boot 多模块项目 + Swagger 让你的API可视化 前言 手写 Api 文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不 ...

  3. 15、Spring Boot 2.x 集成 Swagger UI

    1.15.Spring Boot 2.x 集成 Swagger UI 完整源码: Spring-Boot-Demos 1.15.1 pom文件添加swagger包 <swagger2.versi ...

  4. Spring boot 、mybatis、swagger、c3p0、redis 和mongodb 整合

    文件路径:            添加依赖: <?xml version="1.0" encoding="UTF-8"?> <project ...

  5. Spring Boot 、mybatis 、swagger 和 c3p0 整合

    文件路径如下 添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  6. Spring boot 、mybatis 和 swagger 整合

    文件路径 添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  7. Spring Boot之注册servlet三大组件

    由于Spring Boot默认是以jar包的形式启动嵌入式的Servlet容器来启动Spring Boot的web应用是,没有web.xml配置文件 注册三大组件用以下方式 ServletRegist ...

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

    1.Nexus与Maven 先说一下这个Maven是什么呢?大家都知道,Java社区发展的非常强大,封装各种功能的Jar包满天飞,那么如何才能方便的引入我们项目,为我所用呢?答案就是Maven,只需要 ...

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

    摘要 springfox swagger展示restful的api doc, swagger is A POWERFUL INTERFACE TO YOUR API. 新增文件: import org ...

随机推荐

  1. C# 窗体 类似framest 左侧点击右侧显示 左侧菜单右侧显示

    首先托一个splitContainer调节大小位置 然后进行再新创建一个窗体名为add 在左侧拖入button按钮 进入代码阶段 更改属性 public Main() { InitializeComp ...

  2. VS2010,VS2013 Datagridview控件的编辑列功能,弹窗界面被挤扁了

    搜了很久,没找到解决办法,在一个角落看到说要卸载Framework,实践后可以,发出来记一下. 解决办法: 发现自己电脑上多了Framework4.8,可能安装VS2013的时候自动安装的. 卸载了F ...

  3. docker实战之通过nginx镜像来部署静态页

    本章我们主要讲解如何通过docker构建一个nginx容器,这里我们以部署一个静态html为素材来进行演示. 首先我们通过[docker search nginx]命令来查找Docker Hub上的n ...

  4. 浏览器环境下的microtaks和macrotasks

    带有可视代码执行顺序的原文链接https://jakearchibald.com/201...,此篇文字并非其完整翻译,加入了一部分自己的理解,比如将其中的task替换为macrotask或是删除了可 ...

  5. k-means和iosdata聚类算法在生活案例中的运用

    引言:聚类是将数据分成类或者簇的过程,从而使同簇的对象之间具有很高的相似度,而不同的簇的对象相似度则存在差异.聚类技术是一种迭代重定位技术,在我们的生活中也得到了广泛的运用,比如:零件分组.数据评价. ...

  6. 黑马vue---61、为什么vue组件的data要是一个函数

    黑马vue---61.为什么vue组件的data要是一个函数 一.总结 一句话总结: 因为js中以函数为变量作用域,所以这样可以保证每个组件的数据不互相影响 二.why components data ...

  7. HearthAgent A Hearthstone agent

    http://www.intelligence.tuc.gr/~robots/ARCHIVE/2015w/Projects/LAB51326833/download.html The project ...

  8. CloudFlare 新手入门中文教程

    loudFlare成立于2009年,是国外著名的免费CDN网站加速服务公司,CloudFlare 还提供实时安全保护服务和网络优化等,采用的是免费+增值模式,可以免费使用,也有收费服务.国内也有很多免 ...

  9. 使用pycharm发布python程序到ubuntu中运行

    前提条件: 1.ubuntu安装了vsftpd,可以参考:https://www.cnblogs.com/xienb/p/9322805.html 2.安装专业版pycharm 步骤: 1.新建一个P ...

  10. 深入浅出ConcurrentHashMap1.8+CAS+volatile

    1.深入浅出CAS 前言 CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执 ...