Skip to content

crackedcd/springcloudtest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简单的Spring Cloud demo.


  • 外部通过mopen开放接口, 网关到mapi处理业务逻辑, 通过mdc访问数据, 配置是mconfigserver.

  • 环境 springboot2.0.2, jdk10.

  • 工程启动后, 通过 http://127.0.0.1:8080/openapi/hi?name=cc 访问


  • springboot2.0.2, eureka的pom名称改成了:

     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
     </dependency>
    

      不能直接抄网上的.

  • jdk9之后, 把javaEE的模块移出了默认的path下, 因此需要在jvm的选项里面增加:

--add-modules java.xml.bind

  • eureka有自我保护机制(https://github.com/Netflix/eureka/wiki/Understanding-Eureka-Peer-to-Peer-Communication), 可通过将eureka.server.enable-self-preservation置为false来关闭. 但生产环境应该打开这个保护机制.

  • feign基于接口, @FeignClient的value参数指定提供服务的服务名, @RequestMapping的value参数指定提供服务的API(controller).

  • 配置中心的config-server可配置git/svn/native等方式. config-client的配置需要修改bootstrap.properties(因其在Spring Cloud中, 由父Spring ApplicationContext加载, 优先级高于application.properties). config-client的启动如果依赖config-server的配置(例如使用了@Value("{}")注解), 那么一定要config-server启动完成后, config-client才可以启动.

  • config-client注册到注册中心后, 把get某个配置的方法包装成feign接口, 其他服务基于feign接口访问配置, 这样可以把配置服务基于域名来发布.

  • eureka server的高可用, 是在server的classpath中同时指定两个properties文件, 在两个文件中的spring.application.name一致, eureka.client.serviceUrl.defaultZone分别设置为对方. 配置hosts:

127.0.0.1 eureka.server.primary 127.0.0.1 eureka.server.secondary

      通过设置jvm参数, 启动两个eureka server:

java -jar eureka-server-0.0.1-SNAPSHOT.jar - -spring.profiles.active=primary java -jar eureka-server-0.0.1-SNAPSHOT.jar - -spring.profiles.active=secondary

      若启动成功, 可在界面的DS Replicas中看到备用server的情况. 然后将服务注册到任意一个eureka server即可.

  • configserver提供配置服务, 所有其他需要引用配置的服务都不需要application.yml/properties了, 只需要在bootstrap中指定配置中心即可, 所有配置都通过配置中心获取. 需要在pom中引入spring-cloud-starter-config. (运行时命令行参数优先级 > boostrap > application)

  • (TODO) 使用 https://github.com/ctripcorp/apollo 替代 springcloud config.

About

My SpringCloud Test Demo

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages