首页 文章 精选 留言 我的

精选列表

搜索[混元翻译],共10002篇文章
优秀的个人博客,低调大师

为什么是RocketMQ(翻译)

动机 在早期阶段,我们构建分布式中间件基于ActiveMQ 5.x(早于 5.3)。我们的国际业务将其用于异步通信,搜索,社交网络活动流,数据管道,甚至在其交易流程中。随着我们的交易业务吞吐量增加,源自我们的消息集群的压力也变得迫切。 为什么是RocketMQ 基于我们的研究,随着使用的队列和虚拟主题的增加,ActiveMQ IO 模块成为了瓶颈。 我们尽力通过节流,断路器或降级解决这个问题,但效果不佳。因此我们开始关注那时候比较流行的消息解决方案kafka。不幸的是,就低延迟和高可用方面而言,kafka不能解决我们的特殊需求,详情看这里。 在这种情况下,我们决定创造一个新的消息引擎来解决更广泛的使用场景,从传统的发布/订阅情景到大容量的实时零容错零容忍事物系统。我们认为这个解决方案可能是有益的,因此我们希望将它向社区开源。目前,有超过100家公司在生产环境中使用开源的RocketMQ版本。我们还发布了基于RocketMQ的商业发行版,一种被称为阿里云平台的paas产品。 下面的表格展示RocketMQ,ActiveMQ 和Kafka (来自awesome-java的流行消息解决方案)之间的对比 Rocket ,ActiveMQ ,kafka比较 消息产品 ActiveMQ Kafka RocketMQ 客户端SDK Java, .NET, C++ 等 Java, Scala 等 Java, C++, Go 协议和规范 push模式,支持OpenWire, STOMP, AMQP, MQTT, JMS pull模式,支持TCP pull模式,支持TCP,JMS,OpenMessaging 有序消息 独有消费者或队列可保证顺序 分区内保证消息顺序 保证严格的消息顺序,可优雅的横向扩展 定时消息 支持 不支持 支持 批量消息 不支持 支持,通过异步发送者 支持,通过同步模式避免消息丢失 广播消息 支持 不支持 支持 消息过滤器 支持 支持,可通过streams来过滤消息 支持,基于SqL92的属性过滤器表达式 服务器触发重发 不支持 不支持 支持 消息存储 支持快速持久化jdbc和高性能日志文件,例如levelDB,kahaDB 高性能文件存储 高性能低延迟文件存储 消息回溯 支持 支持偏移量 支持时间偏移量 消息优先级 支持 不支持 支持 高可用故障转移 支持,依赖存储,kahadb需zookeeper 支持,需要zookeeper 支持,主从模式,不需其他组件 消息追踪 不支持 不支持 支持 配置 默认配置是低级别的,用户需优化配置参数 kafka使用格式化键值对配置。值可通过文件或编程提供 开箱即用,用户只需关注一部分配置 管理和操纵工具 支持 支持,使用命令行暴露核心指标 支持,web和命令行暴露核心指标

优秀的个人博客,低调大师

[翻译]Macvlan 网络驱动入门

Macvlan 网络驱动入门 Macvlan网络驱动是为了在Docker的用户的使用场景中提供一个稳定的,生产就绪的网络驱动。目前Libnetwork 允许用户控制IPv4和IPv6地址管理。对于需要将容器网络和底层网络集成的用户来说,VLAN的驱动也允许他们完全控制二层VLAN taggine。而对于使用不依赖于物理网络约束的overlay网络方式部署网络结构的用户,可以参考multi-host overlay的驱动部署容器的网络。 Macvlan是一种新的网络虚拟化技术。Linux使用非常轻量的方式实现Macvlan,因为Mavlan不使用传统的Linux bridge做隔离和区分,而是直接与Linux的以太网接口或者子接口关联,以实现在物理网络中网络和连接的隔离。 Macvlan提供了很多独特的功能以及为后面更多模式加入的接口。

优秀的个人博客,低调大师

[Android]异步 layout inflation(翻译)

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5829809.html 异步 layout inflation 原文:https://medium.com/@lupajz/asynchronous-layout-inflation-7cbca2653bf#.q22vpezg4 随着最近发布的Android Support Library, revision 24,Google开发者在v4包中增加了一个用来异步inflate layouts的帮助类。 进入 AsyncLayoutInflater 你会发现AsyncLayoutInflater可以使用在当你想要去懒加载你应用中部分UI或者用户行为的响应。这个帮助类将会允许你的UI线程在执行繁重的inflate时继续保持响应。 使用AsyncLayoutInflater你需要在你应用的UI线程创建一个它的实例。 假设下面部分代码是你Activity代码中的一部分(我将在这里使用Kotlin语法): val inflater = AsyncLayoutInflater(this) 然后现在可以通过这个实例inflate你的layout文件: inflater.inflate(resId: Int, parent: ViewGroup) 如你所见,inflate函数接收3个参数。第一个是你layout资源,第二个是可选的view作为预期inflated层次结构的parent,然后第三个是一个OnInflateFinishedListener,是一个回调,一旦layout被inflate完毕它就会被回调(例子中被lambda函数代替)。 比较基本的LayoutInflater的inflate函数,一般使用一个boolean作为第三个参数,它表示是否inflate层次结构应该附属岛一个root参数上面。在我们的inflate函数的异步版本中并没有这样一个参数,大多数情况下你会使用这种方式调用: inflater.inflate(resId: Int, parent: ViewGroup) { view, resid, parent -> parent.addView(view) } 使用AsyncLayoutInflater的缺点 当然它有如下一些缺点: parent的 generateLayoutParams() 函数必须是线程安全的。 所有正在构建的views一定不能创建任何 Handlers 或者调用 Looper.myLooper 函数。 不支持设置LayoutInflater.Factory也不支持LayoutInflater.Factory2 不支持包含Fragments的inflating layouts 如果我们尝试异步的方式去inflate的layout不支持这种方式,那么inflation处理将会自动回退到主线程中。 使用Kotlin Android Extensions 的 Kotlin的小例子 MainActivity class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) loadFirst.setOnClickListener { loadAsync(R.layout.async) { second.text = "I am second TextView" } } } } fun MainActivity.loadAsync(@LayoutRes res: Int, action: View.() -> Unit) = AsyncLayoutInflater(this).inflate(res, frame) { view, resid, parent -> with(parent) { addView(view) action(view) } } activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.cartoon.player.MainActivity"> <TextView android:id="@+id/loadFirst" android:layout_width="match_parent" android:layout_height="48dp" android:gravity="center" android:layout_marginBottom="16dp" android:text="Load f async"/> </LinearLayout> async.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/first" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:text="1"/> <TextView android:id="@+id/second" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:text="2"/> </LinearLayout>

优秀的个人博客,低调大师

ApsaraDB HBase产品支持公网\内网混访

前言 公网访问是一个客户的强需求,主要有解决以下几个问题:1、开发测试访问,一般开发测试在云下2、客户hbase上云,从线下把数据同步上云3、确实有一些公网写数据的需求,比如物联网为此,我们产品上提供了公网访问的支持。 另外经典网络访问VPC环境需要联系HBase产品开通,主要支持经典迁移VPC过渡时使用。 架构 支持混合访问,但是需要阿里云提供的客户端,目前公网访问流量免费。 操作 1、打开HBase管控界面,申请外网地址 2、下载专有的HBase客户端http://public-hbase.oss-cn-hangzhou.aliyuncs.com/installpackage/alihbase-1.1.1-bin.tar.gz使用社区的客户端不支持公网访问 3、配置hbase-site.xml <configuration>

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册