微服务架构是什么?
是一个用分布式服务拆分业务逻辑,完成解耦的架构模式。
通过将功能分解到各个离散的服务中以实现对解决方案的解耦。
是将一个大型的单个应用程序和服务拆分成为数个甚至数十个的支持微服务,他
可扩展单个组件而不是整个的应用程序堆栈,从而满足服务等级协议。
.NetCore 微服务技术栈
1、webapi 网关:Ocelot
路由、服务聚合、服务发现、认证、鉴权、限流、熔断、缓存、Header头传递等
2、弹性和瞬态故障处理库
Polly
允许开发人员以顺畅及线程安全的方式执行重试(Retry),断路器(Circuit),超时(Timeout),隔板隔离(Bulkhead Isolation)及后背策略(Fallback)。
3、在线调试WebApi
Swagger
4、分布式缓存,消息队列
Redis,ActiveMQ,Kafka等
5、全文检索
基于Lucene的框架
1.Apache Solr
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。
2.Elastic Search
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
6、zookeeper
分布式:用更多的服务器来完成任务。
分布是锁,数据一致性,分布式事务
分区容错:断网,延迟
redis:
setnx(key,value)获取锁
expire为锁添加超时时间
delete(key)释放锁
consul/etcd
zookeeper
public Nullable<int> LastModifierId(get;set;) 默认值为null
publiic DateTime? lastModifyTime {get;set;} 时间为null