banner
The article archive

云间连下榻,
天上接行杯。

Scroll down
Java

码云:https://gitee.com/qianxunclub/grpc2http-gateway
GITHUB:https://github.com/qianxunclub/grpc2http-gateway

grpc2http-gateway

License
Language grade: Java
License

简介

该服务是基于 Grpc 反射 开发的一款 Grpc 换为 Http 请求的工具。
因为是基于反射开发,所以使用时无需修改 proto 及相关的代码实现,只需在启动服务时开启反射功能。

  • VO:VO(View Object) 通常是请求处理层传输的对象,它通过 Spring 框架的转换后,往往是一个 JSON 对象。

写在前面

前段时间在浏览开源社区的时候,不小心看到一个 12306抢票 系统,一下就被吸引住了,然后就动力歪念头😏,过年终于不用找黄牛了,哇哈哈哈,写了差不多一个星期,终于可以全自动抢票了,中间遇到的坑也是挺多的,在这里分享一下,供大家参考学习。

一般面试官都是按照自己的简历面试的,下面的面试题当然也是依据我自己的简历的一些问题总结,我是对一些架构知识比较感兴趣,所以简历比较突出架构方面的。
别看人家问的问题很简单,但是你不能简单的回答的,依据自己的能力,能回答多深就多大多深。
然后就是看和面试官的缘分了,能碰触火花,那就恭喜了!

一、简介

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。

官方github:https://github.com/ctripcorp/apollo

作者对Apollo对介绍:https://github.com/ctripcorp/apollo/wiki/Apollo%E9%85%8D%E7%BD%AE%E4%B8%AD%E5%BF%83%E4%BB%8B%E7%BB%8D

分布式配置中心

为什么要有用分布式配置中心这玩意儿?现在这微服务大军已经覆盖了各种大小型企业,每个服务的粒度相对较小,因此系统中会出现大量的服务,每个服务都要有自己都一些配置信息,或者相同的配置信息,可能不同环境每个服务也有单独的一套配置,这种情况配置文件数量比较庞大,维护起来相当费劲,举个栗子:
在开发的过程中,一般数据库是开发环境数据库,所有服务DB的IP配置为:92.168.0.1,突然老大说,开发环境换了,DB的IP要修改,这下可不好受了,所有模块挨个修改DB的配置,就问你难受不难受?
这个时候分布式配置中心就发挥了很大的优势,只需要修改配置中心配置,所有服务即可自动生效,爽不爽!

写在前面

SpringBoot咱们开发一般pom.xml是都集成spring-boot-starter-parent的,这里为什么要自定义一个starter-parent呢,主要以下几个理由:

  1. 定义开发规范:自定义parent可以制定统一配置和依赖规范
  2. 提高开发效率
  3. 统一模块插件化管理:可以在parent实现需要的插件配置,如:redis、mysql、日志、参数校验等
  4. 项目版本升级和依赖包升级更加方便统一
  5. 日志收集等可以从切面获取各个项目数据和日志等
  6. 项目持续集成部署交付方便处理

本文是以上传https://oss.sonatype.org/maven中央仓库为例

注册账号

如果有账号可忽略该步骤,注册地址:https://issues.sonatype.org,这里的账号和密码一定要记住。

创建工单

在首页最上面导航中点击Create创建工单:

插件是用apidoc插件生成文档的,具体使用方式可查看官网:http://apidocjs.com/
该插件不会直接生成APIDOC文档,只会自动生成apidoc.json文件,需要执行apidoc命令才可以生成
apidoc.json文件会生成在项目根目录apidoc文件夹下

引入maven包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.5.9.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>

<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b08</version>
</dependency>
12
请输入关键词进行搜索