我在本地 docker 环境中使用https://hub.docker.com/_/mongo mongo 图像,但Authentication failed出现错误。在docker-compose我添加它:
my-mongo:
image: mongo
restart: always
container_name: my-mongo
environment:
MONGO_INITDB_ROOT_USERNAME: mongo
MONGO_INITDB_ROOT_PASSWORD: asdfasdf
networks:
- mynet
Run Code Online (Sandbox Code Playgroud)
我还尝试从容器内部运行 mongo CLI,但仍然遇到相同的错误:
root@76e6db78228b:/# mongo
MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c87c0f0e-fe83-41a6-96e9-4aa4ede8fa25") }
MongoDB server version: 4.2.3
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> use translations
switched to db translations
> …Run Code Online (Sandbox Code Playgroud) 我在安装在EC2实例上的Laravel应用程序连接到ElastiCache Redis时遇到问题,甚至使用EC2实例中的redis-cli.
Laravel
我尝试在database.php中使用predis配置
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
'read_write_timeout' => -1,
'timeout' => 0
],
],
Run Code Online (Sandbox Code Playgroud)
得到' Error while reading line from the server. [tcp:server here]'
我尝试使用相同配置的phpRedis扩展只改变'client' => 'phpredis'并得到错误read error on connection {"exception":"[object] (RedisException(code: 0): read error on connection at vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:69)
Redis cli
使用redis cli redis-cli -h host_here -p 6379 -a password_here我看到提示,host:6379>但键入任何命令会引发错误Error: …
我们得到了具有复杂业务逻辑的旧遗留应用程序,我们需要对其进行重写。我们考虑使用 cqrs 和事件溯源。但不清楚如何从旧数据库中迁移数据。可能我们只需要将它迁移到读取数据库,因为我们无法重现所有事件来填充事件存储。但是我们至少需要在事件存储中为每个聚合创建一些初始记录,比如AggregateCreated?或者我们需要编写一个脚本并一个一个地使用所有命令以与通常使用事件溯源相同的方式重新创建聚合?
假设我有一个这样的控制器:
class ProfileController extends GetxController {
Rx<UserFacebookInfo?> facebookInfo = null.obs;
void facebookSync() async {
//
// logic to get user info from facebook
//
facebookInfo.value = UserFacebookInfo.fromFacebookApi(userData);
// facebookInfo = UserFacebookInfo.fromFacebookApi(userData).obs; <=== also tried this
update();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在小部件中我有这样的东西:
Widget buildFacebook() => Padding(
padding: const EdgeInsets.only(top: 30.0, right: 20.0, left: 20.0, bottom: 10.0),
child: Obx(() => (_profileController.facebookInfo.value == null) ? Column(
children: [
IconButton(
icon : const Icon(Icons.facebook_outlined, size: 40.0),
onPressed: () => _profileController.facebookSync()
),
const Text(
'Facebook',
style: …Run Code Online (Sandbox Code Playgroud) 我是 ES 的新手,只是想对脑海中的所有内容进行排序。我听说 ES 实际上正在解决写入和读取数据库之间的一致性问题(肯定会有一些延迟)。但我还是不完全明白怎么办?
如果命令进入域并聚合根触发事件以更新事件存储,则将相同的事件发送到更新读取端??但是如果消息丢失了,我们就会有过时的读取端。
是projections唯一的解决方案吗?所以不是从事件更新,而是通过事件存储读取并复制聚合(从开始或从某个快照)。但在这种情况下,它可能违反了一些规则,因为读取端应该很简单,而且它不应该知道域。而且通常读取端是一个单独的应用程序,因此她无法了解聚合。
当然我们也可以使用rabbitMQ或其他一些消息代理来不丢失消息,实际上我认为我们需要。但我也读过,以使其保持一致“你可以使用兔子或 ES”,但是 ES 如何让它自己保持一致?
amazon-ec2 ×1
cqrs ×1
dart ×1
docker ×1
flutter ×1
flutter-getx ×1
laravel ×1
mongodb ×1
redis ×1