1 Star 2 Fork 2

三日月夜 / resk

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

逻辑架构

###用户接口层 apis

  • http server
  • PRC 框架

###应用层 service

  • 定义软件要完成的所有任务
  • 业务流程控制逻辑
  • 各种领域模型相互协作
  • 事务日志安全
  • 通常指service

###领域层

  • 表达业务概念,状态信息,规则
  • 业务核心层
  • 主要包含,实体,值对象 ,领域对象

###基础设施层

  • 提供统一的技术能力
  • 应用层提供消息,领域层提供持久化机制,用户界面提供组件
  • 统一算法
  • 各层之间的通信
  • 和其他服务器交互

物理架构

  • PO 持续化对象

  • DAO 操作数据库

  • VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

  • DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

  • DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

  • PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。

Redis setnx 命令实现分布式锁

Setnx 命令介绍: set if not exists key 不存在时才能成功设置并返回 1 ,获得锁 返回 0 表示 key 存在,没有被设置,锁已经被占用 设置锁的过期时间,释放锁就是使用del命令删除锁

    if redis.Setnx("lock_key",1) {
        redis.Expire("lock_key",10)
        redis.Del("lock_key")//释放锁
        }

Redis set 命令实现分布式锁

Set命令,支持setnx的功能,还可以直接添加过期时间

set key value [EX seconds|PX milliseconds] [nx|xx]
将 value 设置为拿锁的时间
在其他客户端拿锁时验证锁是否已经过期超时

微服务

物理化学特征

- 小:单一职责,3~7人团队,2~3周可以重构或重写
- 独立自治
       - 具备内外通信的能力
       - 协议包装不变,服务契约不变
       - 内部的变化不会对外部消费造成困惑

社会化特征

- 通过的可交换的通讯和数据协议
- 进化式的,费一步到位
- 监管: 从业务设计,技术架构,监控

定义

- 宏观上是一套完整的软件架构,开发和运行体系
- 微观上是单一职责,独立自治的微服务单元

缺点

- 运维工作量增加,运维管理变复杂
- 代码重复率增加,接口测试大量增加
- 分布式固有的复杂性和缺点变得更突出

克服缺点需要付出额外的技术需求

- 服务发现,服务路由
- 自动化测试,自动化运维
- 监控,调试链跟踪系统
- 分布式事务协调

Comments ( 0 )

Sign in for post a comment

About

Golang 抢红包分布式慕课网视频 expand collapse
Go
Apache-2.0
Cancel

Releases

No release

Contributors

All

Activities

load more
can not load any more
Go
1
https://gitee.com/mai12/resk.git
git@gitee.com:mai12/resk.git
mai12
resk
resk
master

Search

105716 1d94204e 1850385 105716 2d26be5c 1850385