集成了所有博主在开发与学习中接触过以及使用过的服务端技术,以及相关的使用和介绍,例如:Php、Linux、Docker、Java、Python、网络爬虫、以及各种技术

应用数据库常见的数据切分方式

应用数据库常见的数据切分方式 数据切分简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。 垂直拆分,数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式。一种是按照不同的表(或者Schema)来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直(纵向)切分。 ...

微服务的常见架构方式

微服务的常见架构方式,在互联网产品愈发庞大复杂的情况下,系统架构往往影响着整个项目,单纯的单体架构已经不能满足系统需求了,那我们如何开展微服务架构呢?我们这里以: 整洁架构、六边形架构、DDD分层架构 三种架构进行分析DDD分层架构,在下面这张图中,从上到下依次是:用户接口层、应用层、领域层和基础层。那 DDD 各层的主要职责是什么呢? ...

高效IO之零拷贝技术

这种技术是出现在 IO 操作上的, IO 操作会大量消耗 CPU 的性能,为什么说 IO 操作很容易成为性能瓶颈呢,每一个的 IO 操作都会涉及到操作系统的内核空间和用户空间的转换,真正执行的 IO 操作实际上是在操作系统的内核空间进行。无论是 文件IO ,还是 网络IO ,最后都可以统一为用户空间和内核空间数据的交换。计算机中内存和 CPU 都是非常稀有的资源,应该尽可能提高这些资源的使用效率。 IO 操作经常需要与磁盘就行交互,所以 IO 操作相比于 CPU 的速度要慢好几个数量级。利用这两者之间的速度差异,就可以实现不同种类的 IO 方式,也就是俗称的 IO模型。 ...

laravel实现利用RabbitMQ实现MQTT即时通讯

有时候我们的项目中会用到即时通讯功能,比如电商系统中的客服聊天功能,还有在支付过程中,当用户支付成功后,第三方支付服务会回调我们的回调接口,此时我们需要通知前端支付成功。而 RabbitMQ 可以很方便的实现即时通讯功能,如果你的业务只是少量地方使用即时通信,需要一个简易的消息系统,你可以直接考虑 MQ 的实现, MQ 有很高的吞吐率,具有持久化,还可以横向扩展,总之还不错,用就完了,奥利给! ...

UUID和雪花(Snowflake)算法该如何选择?

UUID和雪花(Snowflake)算法该如何选择?UUID 和 Snowflake 都可以生成唯一标识,在分布式系统中可以说是必备利器,那么我们该如何对不同的场景进行不同算法的选择呢,UUID 简单无序十分适合生成 requestID, Snowflake 里面包含时间序列等,可以用于排序,效率都还可以,本文详细介绍了我们选择的使用不同算法的原因,两种算法不同维度的对比。 ...