微服务系统项目

微服务系统项目

三层架构

web系统开发的三层架构
  1. 表示层ui
  2. 业务逻辑层BLL
  3. 数据访问层DAL

优点:

  1. 分层
  2. 业务逻辑可以多人开发
  3. 层与层分工明确,可以让设计更简单
  4. 后期维护成本以及升级
  5. 避免了表示层直接访问数据层,可以让数据更加安全
  6. 分层的设计可以提升复用
  7. 更方便移植

缺点:

  1. 会让项目开发变得更复杂
  2. 分层影响性能
  3. 开发成本大
当前常见的项目架构

单体式项目
优点:

  • 开发简单
  • 基本不会重复开发
  • 功能都在本地,没有分布式的管理和调用消耗

缺点

  • 效率低
  • 维护难
  • 稳定性差
  • 不灵活
分布式应用

四个特征:

  • 分布性
  • 自治性
  • 并行性
  • 全局性

优点:

  • 资源共享
  • 加快计算速度
  • 可靠性强
  • 通信方便快捷
    缺点
  • 可用软件不足,系统软件,编程语言,应用程序以及开发工具较少
  • 存在网络的安全问题,方便的数据共享同时意味着机密数据容易被窃取。
微服务

特点:
特征

  • 一些系列独立的服务共同组成系统。
  • 单独部署,跑在自己的进程中。
  • 每个服务为独立的业务开发。
  • 分布式管理。
  • 非常强调隔离性。

优点

  • Microservice架构模式解决了复杂性的问题。
  • Microservice架构使每个服务都能够由专注于该服务的团队独立开发。
  • Microservice架构模式使每个微服务都能独立部署。
  • Microservice架构模式使每个服务都可以独立调整。

缺点

  • Microservice过度强调服务规模,但这只是一种手段,而不是主要目标。微服务的目标是充分分解应用程序,以便于敏捷应用程序开发和部署;
  • 分布式系统通信的复杂性。开发人员需要选择和实现基于消息传递或RPC的进程间通信机制。此外,他们还必须编写代码来处理部分故障,因为请求的目的地可能很慢或不可用;
  • 设计复杂的分区的数据库架构。
  • 测试微服务应用程序更复杂。
  • 维护微服务更加复杂,比如实现跨越多个服务的更改。
  • 部署基于微服务的应用程序也更复杂。

常见的微服务框架组件

spring cloud
Eureka注册中心
Ribbon负载均衡
Feign Http客户端
Hystrix容错或延时
Config配置中心

RabbitMQ消息队列服务工具

消息队列

  • 先进先出

应用

  • 应用的解释
  • 流量削峰
  • 消息分发
  • 异步消息

RabbitMQ

  • AMQP
  • 组成
    - BRoker 消息队列进程
    - Exchange 消息队列路由
    - Queue消息队列
    - Producer消息生产者
    - Customer消息消费者
  • 部署
  1. docker pull rabbitmq:management
  2. docker run -id --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management # 未设置密码
  3. docker run -id --name rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management # 设置了用户和密码
  4. docker start rabbit

rabbitmq管理页面访问http://ip:15672/。

Redis缓存数据库

是一个键值对型的内存数据库,也是NoSQL数据库的一种。

特点:

  • 性能很高
  • 具备数据持久化能力
  • 有丰富的数据类型支持:String、哈希Hash、列表List、集合Set、有序集合Sorted Set
  • 原子性15672
  • 丰富的特性,如:发布/订阅、通知等
  • 主从复制
docker pull redis
docker run -id --name redis -p 6379:6379 redis
docker start redis

docker exec -it redis redis-cli  #启动docker容器中的redis的客户端
docker exec -it redis redis-cli --raw #中文数据正常显示
docker exec -it redis redis-cli -h host -p port -a password

基本命令

docker exec -it redis redis-cli
127.0.0.1:6379>下执行命令

set key value          		 #创建键值对,键存在则更新值
setnx key value          	 #创建键值对,键不存在则创建,防止覆盖
setex key seconds value  	 #创建键值对,几秒内内存在,过期自动清除
mset key1 value1 key2 value2 #创建多个键值对
keys *		           		 #查看所有键
get key		           		 #查看指定键的值
mget key1 key2         		 #查看多个键的值
incr key					 #自增
decr key					 #自减
incrby key increment		 #增加多少
decrby key decrement		 #减少多少
strlen key                   #字符长度

哈希指令
hset key field value         #创建键 字段 属性
hmset key field1 value1      #创建键 多个字段属性
hkeys key					 #查看键的所有字段
hkeys value					 #查看键的所有属性
hgetall key					 #查看键的所有字段和属性
hmget
hkeys
hvals
hlen
hincrby
hexists							#判断是否存在


list
lpush								#左添加
rpush 								#右添加
lrange   list  0 -1        		#显示所有的数据
lrange   list	0	1				#显示指定长度数据
lpop									#左弹出
rpop									#右弹出
llen list 							#列表的长度
lset	list 1 dog					#修改某个位置
linsert list after(或者before) dog cat  #在前后添加
lindex	list  2							#查看指定的数据


集合
sadd 
smembers			#查看所有
sismember			#查看是否为什么
scard					#集合长度
spop					#弹出指定
srem					#删除指定元素
srandmember		#
sscan	ball 0 match *e count 2(分页)			#匹配查询
sdiff	s1	s2		#比较差异
sunion					#并集
sinter					#交集

有序集合
zadd
zrange height 0 -1
zrevrange height 0 -1      #倒序
zrank 								#第几位
zrevrank							#逆向排序序数
zscore								#显示键的值
zrangebyscore				#显示值的键
zincrby								#增加



常用命令

type age #查看类型
del sex #删除
expire age 10 #加过期时间
desize#查看存了多少健
lastsave#最后一次修改数据库值的时间,返回时间戳
select 0 #切换数据库
flushdb#清空当前数据库
flushall#清除所有数据库数据

Redis存储策略

两种方式RDF和AOF
四种数据持久化策略:

  1. 默认策略。RDF方式,定期写入数据快照
  2. AOF,每次写操作都追加记录到一个文件中
  3. RDF和AOF同时有效,重启后,优先加载AOF策略‘
  4. 不适用任何数据持久化方式

python使用redis

pip install redis

from redis import Redis,ConnectionPool
//redis连接方式一
red=Redis('172.16.6.69',db=1)
red.set('name','zhangsan')
name=red.get('name')
//redis连接方式二
pool=ConnectionPool(host='172.16.6.69',port=6379,db=1)
red=Redis(connection_pool=pool)
red.hset('student','name','lisi')
name=red.hget('student','name')
//redis连接方式三(推荐使用 )
pool=ConnectionPool(host='172.16.6.69',port=6379,db=1,decode_responses=True)
red=Redis(connection_pool=pool)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zerobyte_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值