springcloud配置文件上传大小_SpringCloud实战二-Nacos
引入
在微服务中,可能有很多服务消费者和服务提供者,我们需要维护这一部分的数据或者内容(服务地址、端口、状态),此时我们引入服务发现(Service Discovery)的概念。
简易服务发现:
我们在服务发现组件中记录服务消费者和服务提供者的的相关信息,便于服务消费者来调用服务提供者,此时如果微服务特别多,难免给mysql造成压力,此时我们做一个小的优化,在消费者和组件之间加一个缓存,获取调用者信息时,先从换从查找,再调用消费者。
此时虽然有了缓存,但是微服务的状态我们无法实时提供,可能某一台服务器“挂”了,组件无法知晓,则会出现无法响应的问题,此时我们再做一个优化,让每一台服务器给组件发送心跳,在组件中加一个字段,存储这个心跳时间,如果很久没有更新心跳,则将status变为DOWN。
此时我们完成了一个较理想状态的服务发现演变过程。
什么是Nacos
上述是服务发现的白话原理,我们可以使用现成的服务发现组件:Eureka(2.0不再维护)、Nacos、Consul,下面着重了解Nacos详细描述可以看Nacos官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html简单地说,nacos可以做两件事:1.服务发现2.配置中心(类似于Spring Cloud Config)
搭建Nacos Serve
下载:https://github.com/alibaba/nacos/releases
下载nacos-server-1.2.1.zip解压参考官方文档,windows执行
cmd startup.cmd -m standalone输入用户名密码(都是):nacos
修改配置文件application.properties,加入自己安装mysql引入依赖spring-boot-starter-security添加代码生成加密后的密码
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;public class Main {public static void main(String[] args) {System.out.println(new BCryptPasswordEncoder().encode("你的密码"));} }将生成的加密字符串替换数据库中的密码即可完成修改密码
登陆后:
将应用注册到Nacos
创建user-center项目
添加配置文件
spring:cloud:nacos:discovery:# 指定nacos server的地址server-addr: localhost:8848application:# 服务名称尽量用-,不要用_,不要用特殊字符name: user-center server:port: 8081直接启动即可,出现下图注册成功
创建content-center项目注册到Nacos Server使用springCloud自带的discoveryClient进行测试(在注册中心寻找user-center)
@RestController public class TestControl {@Autowiredprivate DiscoveryClient discoveryClient;@GetMapping("/test")public List<ServiceInstance> test(){return discoveryClient.getInstances("user-center");} }上图可以发现已经成功找到user-center
启动两个user-center
拓展,通过java8获取instances中uri的内容并返回,可替换固定的链接
String url = instances.stream().map(instance->instance.getUri().toString()).findFirst().orElseThrow(()->new IllegalAccessException("没有发现"));总结
上述已完成服务发现的功能,后续集群还可以设置领域模型(配置文件中配置namespace、group、service、cluster、instance),还可以设置元数据来控制版本。
后续上传git代码(现在的实例比较简单)
欲知后事
后续介绍Ribbon实现负载均衡以及Feign进行服务之间的调用
后续会持续更新,可以关注公众号: 阿清的日常
后台留言,会细致解答。
总结
以上是生活随笔为你收集整理的springcloud配置文件上传大小_SpringCloud实战二-Nacos的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: python中常用的序列化模块_Pyth
- 下一篇: redistemplate hash 过